// Copyright 2018 Jeremy Cowles. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

%module sdfPrimSpec

%{
#include "pxr/usd/sdf/primSpec.h"
%}

%template(SdfPrimSpecHandleVector) std::vector<SdfPrimSpecHandle>;
typedef std::vector<SdfPrimSpecHandle> SdfPrimSpecHandleVector;

class SdfPrimSpecHandle {
public:
    SdfPrimSpecHandle();
    SdfPrimSpecHandle(SdfPrimSpec const& spec);
    SdfPrimSpecHandle(SdfPrimSpecHandle handle);
    SdfPrimSpec* operator->();
};

%ignore SdfPrimSpec::GetNameChildrenOrder;
%ignore SdfPrimSpec::GetPropertyOrder;
%ignore SdfPrimSpec::GetVariantSets;

// Until this issue is resolved:
// https://github.com/PixarAnimationStudios/USD/issues/705
%ignore SdfPrimSpec::GetAttributes;
%ignore SdfPrimSpec::GetRelationships;

%include "pxr/usd/sdf/primSpec.h"
